最近開始接觸量化交易(
quant trading),由於這個領域已經發展了好幾年,所以已經有不少現成的套件可以用,尤其是今年稍早 R 的
TTR 套件更新,大多數的技術指標都已經可以直接用函數呼叫來計算,搭配
quantmod 套件,技術分析變成很容易就上手的事情。
以下示範幾個基本的步驟,然後來談談後續進階應用的可能性。
工欲善其事,必先利其器,讓我們從工具的準備開始。
1. 安裝 R 軟體,以及基本設定,請參考
Person Lin 詳盡的圖說
2. 安裝套件 quantmod 與 TTR,可以參考前面說明的後半部,或是在 R console 裡輸入:
〉install.packages(TTR)
〉install.packages(quantmod)
過程中還會要求安裝其他套件,就一併安裝了吧。
準備工作完成,準備開始測試。
1. 載入工作所需套件
〉library(quantmod)
2. 取得歷史資料
從 yahoo finance 資料庫取得台灣50(0050)的歷史資料,儲存在變數 tw0050。裡面包含「開盤價」(Open)、「最高價」(High)、「最低價」(Low)、「收盤價」(Close)、「成交量」(Volume),以及「調整後收盤價」(Adjusted)。
〉tw0050 <- getSymbols("0050.TW", auto.assign=F)
3. 簡易繪圖
接下來畫個台灣50的收盤價趨勢圖,就是最上面的那張:
〉plot(Cl(tw0050),type="l")
Cl(tw0050) 會取出「收盤價」,而
plot 是 R 的基本繪圖函數,
type="l" 是指定畫出「折線圖」。可以看得出來,R 的基本繪圖實在不怎麼好看。
4. 專業繪圖
quantmod 在視覺化上也比基本繪圖好很多, 例如:
〉chartSeries(tw0050, theme="white")
〉addBBands()
〉addMACD()
可以得到下圖:
基本上跟一般的看盤軟體已經很接近了。
以上是最基本的使用,其它的應用,可以參考
更詳盡的教學,或是
TTR /
quantmod 套件的說明文件。
有了基本的資料之後,我們可以用來作什麼?當然,我們可以跟電視上的股票老師一樣,畫一堆線圖,做
技術分析,然後作為交易的依據。
但是,人的想像力是無限的,同樣的資料當然也可以拿來作其它用途。
例如,對音樂家來說,股價趨勢可以是音符;對心理諮商師來說,股價變化可以是生意的指標;對零售商來說,股價可能反應了某些產品需求的消長;對行銷人員來說,股價可以暗示溝通訴求的變化。
即便是拿這些資料來做市場交易,也可有不同的用法,畢竟「問對問題」,是一切創新的基礎。以金融商品的預測來說,「價格區間」當然是可以預報的標的,但是通常這種預測的結果,受限於資料的特性,一般都不會太準確。以「決策輔助」的角度來看,「交易」這個行為,本身就包含了很多的決策過程,而量化分析真的可以發揮功效的地方,其實是在於改善整個交易流程中眾多小決策的品質,因此預報的標的應該不是「價格」,而是人應該採取的「行動」。至於其中的細節,由於牽涉到工作的內容,就不多說了。